Software applications or application programs may be provided to client computers (users) through a technique known as server clustering. A server cluster is a group of independent physical computers also known as nodes. The nodes work together as a single system in combination with a shared disk to ensure that the application programs remain available to the client computers in the event that one of the nodes fails. The nodes run a common operating system and allow administrators to access and manage the nodes as a single system rather than as separate computers.
Typically, a server cluster relies on the most expensive or most technologically advanced hardware in the datacenter. This server cluster may be hosting or running the most important software application. Because of the importance of the cluster, administrators desire to manage it better than other computers in a datacenter.
Client computers interact with the server cluster through a virtual server. The virtual server is not a physical computer, but is created and hosted by one of the physical computers or nodes in the server cluster. The virtual server may be identified by client computers through an IP (internet protocol) address or by a server name. In the event of failure or failover of a host node, the virtual server may move or be relocated to another node in the server cluster. The virtual server may also be relocated from one node to another node during maintenance by administrators.
Typically, a monitoring system is employed by the server cluster by installing management agents on each node. Through the management agents, each node is monitored by a management system server. A management agent communicates on a regular basis with the management system server. The management system server deploys management packs which contain rules and other logic for monitoring the health of the nodes. In addition to monitoring the health of the node, the management agent may host the management pack and identify the makeup (i.e., configuration) of the node.
To effectively monitor the server cluster, the monitoring system determines which virtual servers exist in the server cluster. Once the monitoring system determines which virtual servers exist in the server cluster, it determines which nodes may host particular virtual servers. This determining allows that at any particular instance, the monitoring system can determine which particular node is currently hosting a particular virtual server.
Typically, a monitoring system may be able to understand when failover occurs; however, the monitoring system may not understand the consequence of a particular failover. In certain cases, the monitoring system may provide false or misleading information. For example, the monitoring system may provide an erroneous warning to an administrator that a virtual server with which client computers are interacting has become disabled when in fact the host node has failed. However, although the hosting node has failed, failover nodes are available that can host the virtual server and continue to allow client computers to use application programs provided through the virtual server. The monitoring system may not provide information that administrative action is required on the failed node and alert the administrator of such a failure.
Furthermore, the typical monitoring system may fail to effectively address the following issues in order to monitor the server cluster: what virtual servers exist in the server cluster; which particular nodes may host which particular virtual server; what are active virtual servers; which node is currently hosting which virtual server; and which nodes have historically hosted which virtual servers.
Cluster logic that includes complex script or code may be written or provided in management packs to address some of the issues. The script or code is ran and evaluated on a node to determine if the node is hosting a virtual server. As the script or code runs, a determination is made as to whether a virtual server is hosting a server cluster (i.e., providing software applications to client computers). However, such cluster logic and script may have to be continuously modified and distributed from a central authority or administrator, to provide adequate determination and monitoring of nodes and virtual servers. In other words, typical monitoring systems rely on a central authority or administrator.
Therefore, without the complex cluster logic that includes the script from the central authority or administrator, typical monitoring systems do not adequately detect or identify all server clusters, track nodes that host virtual servers, or track virtual servers. If virtual servers and nodes are not identified, they cannot be monitored.